
package Control;

import Database.ConexaoDB;
import Model.Estado;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class Control_Estado {
    Connection con = new ConexaoDB().conectar();
    PreparedStatement pstm;
    ResultSet rs;
    
    String cadastraEstado = "INSERT INTO ESTADO(ESTADO_ID, ESTADO_DESCRICAO, ESTADO_UF) VALUES(0,?,?)";
    
    String alteraEstado = "UPDATE ESTADO SET ESTADO_DESCRICAO=?, ESTADO_UF=? WHERE ESTADO_ID=?";
     
    String excluiEstado = "DELETE FROM ESTADO WHERE ESTADO_ID=?";
    
    String consultaEstadoCodigo = "SELECT * FROM ESTADO WHERE ESTADO_ID LIKE ?";
    
    String consultaEstadoNome = "SELECT * FROM ESTADO WHERE ESTADO_DESCRICAO LIKE ?";
    
    String consultaEstadoTodosNome = "SELECT * FROM ESTADO ORDER BY ESTADO_DESCRICAO";
    
    String consultaEstadoTodosCodigo = "SELECT * FROM ESTADO ORDER BY ESTADO_ID";
    
      
    ConexaoDB BD = new ConexaoDB();
    
    
    public Control_Estado(){ }                                
    
    public void cadastrarEstado(Estado estado){
         try{
            pstm = BD.conectar().prepareStatement(cadastraEstado);
            pstm.setString(1, estado.getEstado_descricao());
            pstm.setString(2, estado.getEstado_uf());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public void alterarEstado(Estado estado){
         try{
            pstm = BD.conectar().prepareStatement(alteraEstado);
            pstm.setString(1, estado.getEstado_descricao());
            pstm.setString(2, estado.getEstado_uf());
            pstm.setInt(3, estado.getEstado_id());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public void excluirEstado(Estado estado){
         try{
            pstm = BD.conectar().prepareStatement(excluiEstado);
            pstm.setInt(1, estado.getEstado_id());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public java.util.List<Estado> listarEstadoCodigo(String codigo){
        java.util.List<Estado> estado = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaEstadoCodigo);
            pstm.setString(1, codigo);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Estado est = new Estado();
                est.setEstado_id(rs.getInt("estado_id"));
                est.setEstado_descricao(rs.getString("estado_descricao"));
                est.setEstado_uf(rs.getString("estado_uf"));
                estado.add(est);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return estado;
    }
    
    public java.util.List<Estado> listarEstadoNome(String nome){
        java.util.List<Estado> estado = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaEstadoNome);
            pstm.setString(1, nome);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Estado est = new Estado();
                est.setEstado_id(rs.getInt("estado_id"));
                est.setEstado_descricao(rs.getString("estado_descricao"));
                est.setEstado_uf(rs.getString("estado_uf"));
                estado.add(est);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return estado;
    }
    
    public java.util.List<Estado> listarEstadoTodosNome(){
        java.util.List<Estado> estado = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaEstadoTodosNome);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Estado est = new Estado();
                est.setEstado_id(rs.getInt("estado_id"));
                est.setEstado_descricao(rs.getString("estado_descricao"));
                est.setEstado_uf(rs.getString("estado_uf"));
                estado.add(est);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return estado;
    }
    
    public java.util.List<Estado> listarEstadoTodosCodigo(){
        java.util.List<Estado> estado = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaEstadoTodosCodigo);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Estado est = new Estado();
                est.setEstado_id(rs.getInt("estado_id"));
                est.setEstado_descricao(rs.getString("estado_descricao"));
                est.setEstado_uf(rs.getString("estado_uf"));
                estado.add(est);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return estado;
    }
    
}
